/**
 * \file CMainFrm.h
 * \author Corentin Le Bail
 * \date 2009-2012
 * \brief Fichier de déclaration de la class CMainFrm
 */
//------------------------------------------------------------------------------
#ifndef __CMAINFRM_H__
#define __CMAINFRM_H__
//------------------------------------------------------------------------------
#include <QtGui>
#include <QMainWindow>
#include <QMdiArea>
#include <QMenu>
#include <QAction>
#include <QToolBar>
#include "CProfils.h"
//------------------------------------------------------------------------------
/**
 * \class CMainFrm CMainFrm.h "CMainFrm.h"
 * \brief Classe de la fenêtre prinicpale.
 */
class CMainFrm : public QMainWindow
{
	Q_OBJECT
	public:
		/**
		 * \fn CMainFrm(QWidget *parent = 0, QString profilName = "")
		 * \brief Constructeur
		 * \param[in] parent Référence vers un objet parent
		 * \param[in] profilName Nom du profil
		 */
		CMainFrm(QWidget *parent = 0, QString profilName = "");
		/**
		 * \fn QString getVersion(void)
		 * \return La version du logiciel
		 */
		QString getVersion(void) { return profils->getVersion(); }
		/**
		 * \fn void setVersion(QString value)
		 * \brief Affecte la version du logiciel
		 * \param[in] value La version du logiciel
		 */
		void setVersion(QString value) { return profils->setVersion(value); }
	private:
		QMdiArea *mdiArea;
		QMenu *mnuFile;
		QMenu *mnuVente;
		QMenu *mnuAccessoire;
		QMenu *mnuDivers;
		QMenu *mnuHelp;
		QToolBar *mainToolBar;
		QAction *actConnect;
		QAction *actConfigConnection;
		QAction *actQuit;
		QAction *actClient;
		QAction *actArticle;
		QAction *actDevis;
		QAction *actCommandes;
		QAction *actBLs;
		QAction *actFactures;
		QAction *actPontsComptable;
		QAction *actProspect;
		QAction *actPays;
		QAction *actModeReglement;
		QAction *actConditionReglement;
		QAction *actFamilleArticle;
		QAction *actUnites;
		QAction *actNotes;
		QAction *actStatusPaie;
		QAction *actAction;
		QAction *actAbonnementEMailing;
		QAction *actChat;
		QAction *actAboutQt;
		QAction *actMySQLVersion;
		QAction *actNoteDeVersion;
		QAction *actCA;
		QAction *actHelp;
		QAction *actSociete;
		QAction *actTva;
		QAction *actServletVersion;
		CProfils *profils;
		
		void createMenus(void);
		void createActions(void);
		void createToolBar(void);
		void closeEvent(QCloseEvent * event);
		QMainWindow * findMdiChild(QString name);
		bool closeMdiChild(void);
	public slots:
		/**
		 * \fn void authentification(void)
		 * \brief Lors de l'authentification
		 */
		void authentification(void);
		/**
		 * \fn void showNotesDeVersion(void)
		 * \brief Lors de l'affichage des notes de version
		 */
		void showNotesDeVersion(void);
		/**
		 * \fn void loadDevis(int numero=-1)
		 * \brief Lors du chargement d'un devis
		 * \param[in] numero Numéro du devis
		 */
		void loadDevis(int numero=-1);
		/**
		 * \fn void loadCommandes(int numero=-1)
		 * \brief Lors du chargement d'une commande
		 * \param[in] numero Numéro de la commande
		 */
		void loadCommandes(int numero=-1);
		/**
		 * \fn void loadBLs(int numero=-1)
		 * \brief Lors du chargement d'un bl
		 * \param[in] numero Numéro du bl
		 */
		void loadBLs(int numero=-1);
		/**
		 * \fn void loadFactures(int numero=-1)
		 * \brief Lors du chargement d'une facture
		 * \param[in] numero Numéro de la facture
		 */
		void loadFactures(int numero=-1);
	private slots:
		void configure(void);
		void loadFicheClient(void);
		void loadFicheArticle(void);
		void loadProspect(void);
		void loadCA(void);
		void loadFichePays(void);
		void loadModeReglement(void);
		void loadConditionReglement(void);
		void loadFamilleArticle(void);
		void loadAbonnementEMailing(void);
		void loadChat(void);
		void loadUnites(void);
		void loadNotes(void);
		void loadStatusPaie(void);
		void loadAction(void);
		void versionMySQL(void);
		void versionServlet(void);
		void onInvokeHelp(void);
		void onQuitFrm(QString frmName, QString value);
		void onQuitFrm(QString frmName, QMap<QString, QVariant> keyValues);
		void loadSociete(void);
		void loadPontsComptable(void);
		void loadTva(void);
};
//------------------------------------------------------------------------------
#include "CClientFrm.h"
#include "CProspectFrm.h"
#include "CSocieteFrm.h"
//------------------------------------------------------------------------------
#endif //__CMAINFRM_H__
//------------------------------------------------------------------------------